Call Center Forecasting with Prophet
Dennis Sobolewski Analysis
Business Problem
Over the past few years, Airbnb has witnessed a dramatic increase in the volume of transactions on it’s site. Simulataneously, it’s customer experience team has been overwhelmed by a surge in requests for help across a number of languages. Focusing on French service requests, this report will analyze support requests in relation to transactions, build a forcasting model to predict future request volume, and finally make recommendations on the amount of resources needed to handle that volume based on historical data.
The below shows that French is among the top ranking languages in number of support request volume over time with English being the top ranked language overall. English has been removed from the below plot to better compare French language requests with others. Feel free to use the input selection to compare daily support requests over time for other languages in relation to French. A seperate color can be selected in the brush color option to differentiate.
Transactions vs Support Requests
While exploring the data I plotted both booking and checkin daily totals against support request totals on that same day. I also fit linear models to each variable to better see their relationships by interpretting their results. We can see that both bookings and checkins have significant P values and bookings have a significantly higher R-squared value than checkins. One hypothesis that can be formed from this is that customers require more support when booking an AirBnb as opposed to checking into one.
Prophet Forecast Model
To create a forcast model for support requests I used the Facebook developed Prophet forcasting package. There are many methods for modeling time series data but this package was chosen due to its ease of use and ability to accurately model time series data containing multiple period trends. More information on this package can be found here.
My methodology for training and testing my model on daily support request totals is as follows:
- Create a test and train set from the given data.
- Fit the model on the train dataset and forcast request totals for the test dataset.
- Measure accuracy of the model by calculating the root-mean-square error (RMSE).
- Repeat steps with different tuning perameters and with regressors added from the transactional data set to determine optimal setup.
Surprisingly the Prohpet model without the booking and checkin totals added as regressors performed best. Below are the predicted daily support values plotted alongside the actual values. We can see the model predicts very close to the actual support request totals.
Trends
We can also look at the different trends that the Prophet algorithm detected in our dataset. The below shows the overall, yearly, and weekly trends in our time series support request data. These confirm assumptions that volume is increasing overall, weekends see more requests than weekdays, and there is a spike in support requests just as the summer travel season begins.
Future Predictions
Using our Prophet model we can predict support request totals for the future April through December period. Below are the prediction results appended to the end of the original known support data.
Resource Allocation
In order to get a picture of Airbnb’s historical French speaking support staff totals in relation to daily requests I looked at requests per asignee over time. After calculating support request totals and the number of asignees handling those requests per day I was able to divide the 2 to come up with a target ratio. Below is the ratio smoothed and plotted over time for the period given.
Business Assumptions
Since the support team has been recently overwhelmed with the amount of requests coming in I will made the assumption that the 1.7 requests per resouce from the beginning of the dataset was not an issue for the support team’s capacity. I will also assume that once the ratio rises above this level in March and April is when the customer experience team started becoming overwhelmed. Based on the assumptions we will set our ideal request to support staff ratio at 1.7 for the future.
Final Conclusion
With these assumptions in mind I took the predicted support request values, averaged them by week, and divided them by 1.7 to get the number of French speaking resources needed for each week remaining in the year. Below is a graph representing these projections and a table containing the raw values for the call center management team to use when scaling their team.
| week | average_requests | resources_needed |
|---|---|---|
| 14 | 189.4758 | 111 |
| 15 | 199.6282 | 117 |
| 16 | 203.3966 | 120 |
| 17 | 202.5220 | 119 |
| 18 | 202.9858 | 119 |
| 19 | 208.1313 | 122 |
| 20 | 214.6137 | 126 |
| 21 | 216.7916 | 128 |
| 22 | 214.5977 | 126 |
| 23 | 214.6799 | 126 |
| 24 | 222.3543 | 131 |
| 25 | 233.9524 | 138 |
| 26 | 240.0505 | 141 |
| 27 | 237.2265 | 140 |
| 28 | 234.3577 | 138 |
| 29 | 244.2021 | 144 |
| 30 | 268.0998 | 158 |
| 31 | 291.2157 | 171 |
| 32 | 295.3780 | 174 |
| 33 | 276.9817 | 163 |
| 34 | 250.9759 | 148 |
| 35 | 236.5504 | 139 |
| 36 | 239.6261 | 141 |
| 37 | 249.9295 | 147 |
| 38 | 253.9324 | 149 |
| 39 | 248.4085 | 146 |
| 40 | 240.7680 | 142 |
| 41 | 238.3457 | 140 |
| 42 | 240.2242 | 141 |
| 43 | 240.0068 | 141 |
| 44 | 234.3103 | 138 |
| 45 | 226.2462 | 133 |
| 46 | 220.8266 | 130 |
| 47 | 219.1477 | 129 |
| 48 | 218.4002 | 128 |
| 49 | 216.5318 | 127 |
| 50 | 214.9505 | 126 |
| 51 | 216.2241 | 127 |
| 52 | 220.5202 | 130 |